Video encoders can be very computationally intense devices. They may be responsible for determining a large set of spatial and temporal descriptors from which the best candidates are selected for final encoding. The best candidate selection is based on the premise that the source video signal must be transformed to fit within a communication channel or storage media while maintaining a certain level of quality. Sometimes multiple candidates are chosen during sub-level encoding. For example, macroblock encoding may be carried out multiple times to achieve best output quality. The complete encoding cycle may be repeated, and filtering may be added to optimize video quality.
Hardware and/or software scaling can be performed to reduce the number of compute cycles. For applications where scaling creates an unacceptable quality degradation, parallel processing can be adopted. The degree to which this parallelism is carried out can depend on specific application requirements.
Although parallel processing speeds up the encoding task, certain strategies may be required to improve quality.
Limitations and disadvantages of conventional and traditional approaches will become apparent to one of ordinary skill in the art through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.